package com.ship.contract.bean;

import com.baomidou.mybatisplus.annotation.TableName;
import com.ship.common.core.base.BaseBean;
import com.ship.common.core.base.Joinable;
import com.ship.common.core.mapping.Label;
import com.ship.common.core.mapping.SearchItem;
import com.ship.common.core.mapping.TableColumn;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 船舶信息
 *
 * @author AbyssRabbit@163.com
 * @since 2023-10-18
 */
@Data
@TableName("sp_information")
public class SpInformation extends BaseBean implements Joinable {

    private static final long serialVersionUID = 7567494003540428176L;
    /**
     * IMO
     */
    @Label(value="IMO")
    @SearchItem
    @TableColumn
    private String imo;

    /**
     * 船舶名称
     */
    @Label(value="船舶名称")
    @SearchItem
    @TableColumn
    private String nameOfVessel;

    /**
     * 船舶曾用名
     */
    @Label(value="船舶曾用名")
    @SearchItem
    @TableColumn
    private String formerNameOfShip;

    /**
     * 注册港口
     */
    @Label(value="注册港口")
    @SearchItem
    @TableColumn
    private String registeredPort;

    /**
     *  租金时间段，json字符串
     */
    private String rentTimeSlot;

    /**
     * 所属国家
     */
    @Label(value="所属国家")
    @SearchItem
    @TableColumn
    private String country;

    /**
     * 船型
     */
    @Label(value="船型")
    @SearchItem
    @TableColumn
    private Boolean shipType;

    /**
     * MMSI
     */
    @Label(value="MMSI")
    @SearchItem
    @TableColumn
    private String mmsi;

    /**
     * 载重吨
     */
    @Label(value="载重吨")
    @SearchItem
    @TableColumn
    private BigDecimal deadweightTon;

    /**
     * 净吨位
     */
    @Label(value="净吨位")
    @SearchItem
    @TableColumn
    private BigDecimal netTonnage;

    /**
     * 总吨位
     */
    @Label(value="总吨位")
    @SearchItem
    @TableColumn
    private BigDecimal grossTonnage;

    /**
     * LNG货舱类型
     */
    @Label(value="LNG货舱类型")
    @SearchItem
    @TableColumn
    private Integer lngCargoTankType;

    /**
     * 推进系统类型
     */
    @Label(value="推进系统类型")
    @SearchItem
    @TableColumn
    private Integer typeOfPropulsionSystem;

    /**
     * 长度
     */
    @Label(value="长度")
    @SearchItem
    @TableColumn
    private BigDecimal length;

    /**
     * 宽度
     */
    @Label(value="宽度")
    @SearchItem
    @TableColumn
    private BigDecimal width;

    /**
     * 舱容
     */
    @Label(value="舱容")
    @SearchItem
    @TableColumn
    private BigDecimal storageCapacity;

    /**
     * 油耗
     */
    @Label(value="油耗")
    @SearchItem
    @TableColumn
    private BigDecimal oilConsumption;

    /**
     * 建造年份
     */
    @Label(value="建造年份")
    @SearchItem
    @TableColumn
    private Integer yearOfConstruction;

    /**
     * 建造者
     */
    @Label(value="建造者")
    @SearchItem
    @TableColumn
    private String builder;

    /**
     * 建造国家
     */
    @Label(value="建造国家")
    @SearchItem
    @TableColumn
    private Integer buildACountry;

    /**
     * 空船排水量
     */
    @Label(value="空船排水量")
    @SearchItem
    @TableColumn
    private BigDecimal emptyShipDisplacement;

    /**
     * 排水量最大值
     */
    @Label(value="排水量最大值")
    @SearchItem
    @TableColumn
    private BigDecimal maximumDisplacement;

    /**
     * 设计吃水
     */
    @Label(value="设计吃水")
    @SearchItem
    @TableColumn
    private BigDecimal designDraft;

    /**
     * 最大航速
     */
    @Label(value="最大航速")
    @SearchItem
    @TableColumn
    private BigDecimal maximumSpeed;

    /**
     * 满载自然蒸发率
     */
    @Label(value="满载自然蒸发率")
    @SearchItem
    @TableColumn
    private BigDecimal fullLoadNaturalEvaporationRate;

    /**
     * 空载自然蒸发率
     */
    @Label(value="空载自然蒸发率")
    @SearchItem
    @TableColumn
    private BigDecimal noLoadNaturalEvaporationRate;

    /**
     * 再液化装置
     */
    @Label(value="再液化装置")
    @SearchItem
    @TableColumn
    private Boolean reliquefactionDevice;

    /**
     * 船舶设计油耗表
     */
    @Label(value="船舶设计油耗表")
    @SearchItem
    @TableColumn
    private String shipDesignFuelConsumptionTable;

    /**
     * 历史挂靠港口数
     */
    @Label(value="历史挂靠港口数")
    @SearchItem
    @TableColumn
    private String numberOfHistoricalAffiliatedPorts;

    /**
     * 船舶租赁历史
     */
    @Label(value="船舶租赁历史")
    @SearchItem
    @TableColumn
    private String historyOfShipLeasing;

    /**
     * 船东
     */
    @Label(value="船东")
    @SearchItem
    @TableColumn
    private String shipowner;

    /**
     * 船舶管理公司
     */
    @Label(value="船舶管理公司")
    @SearchItem
    @TableColumn
    private String shipManagementCompany;

    /**
     * 是否是虚拟船（0：否，1：是）
     */
    private Integer isVirtual;

    @Override
    public String getLabel() {
        return null;
    }

    @Override
    public String getValue() {
        return null;
    }
}
